home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
STUTTGART
/
LANG
/
SML40
/
!Sml
/
Sml
/
ORIGREADME
< prev
next >
Wrap
Text File
|
1990-09-17
|
7KB
|
170 lines
VERSION 4.0.01 of Edinburgh Standard ML (core language)
=======================================================
This tape contains a version of the Standard ML core language for UNIX
4.xBSD as it appears in the The Definition of Standard ML Version 3
(May 1989 - LFCS report ECS-LFCS-89-81)
==================================================================
Please complete the licence agreement at the end of this file and
return to LFCS.
==================================================================
Before using the system, you will need to perform the following steps:
1) Create the abstract machine with the filename fam by renaming a file of
the form fam.machine, if you are running on a Vax (ultrix), Sun (3 or 4),
or Pyramid.
For any other machine, you will need to run the command 'make fam' in the
fam.src directory to create a fam file.
2) Edit "config.sml" if you want the ML system to read from a standard
startup file when it begins. In the release, this is "/usr/lib/.smlrc"
(duplicated in the release as ".smlrc"), which tries to open "~user/.smlrc"
if this exists.
3) Run the command 'ml smlcore.exp.backup < config.sml' which should
produce a file called smlcore.exp. This file should then be installed
in a publicly accessible directory.
4) Alter the paths in the file ml to point to the directories containing
the fam and smlcore.exp files. Install this file in a publicly
accessible executables directory.
5) The system may then be invoked by executing the file ml.
Source files of the abstract machine are in the directory fam.src.
Rebuilding the fam, or porting to another machine, may be trivial or may be
quite hard work, depending on how brain-damaged your hardware/OS/C compiler
is. The changes should be localised to system.c and system.h via a number
of #define statements - see what's already there. There's a revision history
at the top of the main source file, fam.c.
DIFFERENCES FROM PREVIOUS VERSIONS
----------------------------------
(3.7)
- Numerically labelled records have been implemented
- singly labelled record pattern bug has been fixed
- exceptions Match, Bind, Abs and Neg are implemented as in the
language definition version 4
(4.0)
- Exception traceback mechanism introduced
- GNU bash Readline library incorporated for interactive line editing
----------------------------------
This version of Standard ML has a number of known deficiencies including...
- The exhaustiveness checking does not always report warnings when it
should. Furthermore, the algorithm used to check the patterns is
exponential, although in many cases this is not a problem.
The exhaustiveness checking is controlled by the CheckMatch flag
in the Debug variable see the man pg for details.
- Parse errors are not always very helpful!
There are a few non-standard features that are available,
including
ExportML : string * string * string list -> unit
This takes a file name, a banner message, and a list of files
to load on start-up, and saves away the current state of the system
in the file with the given file name. Assuming that a saved state
was placed in file fred.exp, then it may be restarted by
executing "ml fred.exp".
Any streams that were open when the export occurred will fail
with the error "stream link lost" if used when the state
is reimported. 'New' versions of std_in and std_out may be
obtained by calling the function stdio: unit -> (instream * outstream).
Print and Debug are variables that affect the underlying compiler.
They are records, and the field names should indicate what most
of the fields do. See the man pg for details
The SML core language environment contains various library functions
which are described in the file LIBINFO.
In addition to the built-in library functions, there are also
library packages for array and byte_array manipulations. These
packages can be loaded directly from the files core_array.sml
and core_barray.sml respectively.
Please report any comments/faults to
Russ Green, Department of Computer Science,
University of Edinburgh.
EMAIL: rjg@uk.ac.ed.lfcs
========================================================================
Laboratory for Foundations of Computer Science
----------------------------------------------
Department of Computer Science - University of Edinburgh
Standard ML Licence Agreement
-----------------------------
Return one copy of this document to LFCS Software Distribution at the
address below and keep one copy for your records.
LFCS, 031-667-1081 ext. 2987
Department of Computer Science, Telex: 727442 (UNIVED G)
University of Edinburgh, E-Mail:ml@uk.ac.ed.lfcs
King's Buildings,
Edinburgh, EH9 3JZ
UK
I, the licensee, agree to the conditions below in respect of the Standard ML
System supplied by the Laboratory for Foundations of Computer Science of the
University of Edinburgh.
Signed: ____________________________ Date:________________________
Name(printed): ____________________________________________________________
Title: ____________________________________________________________
Organisation: ____________________________________________________________
Address: ____________________________________________________________
____________________________________________________________
Telephone: __________________ Electronic Mail: ________________________
Conditions of Licence:
1. Title to and copyright of the Standard ML System remains with the Laboratory
for Foundations of Computer Science at the University of Edinburgh.
2. The ML System may be used freely within the licensee's organisation for
research and educational purposes. Commercial and revenue earning use are
excluded form this agreement. Evaluation for potential commercial use is
permitted, but licencees are advised to contact LFCS in advance of this
activity.
3. The licensee will not pass the ML System to anyone outside their
organisation unless they are already signatories to this licence in which case
the system may be copied to them under the same terms as this licence. No
charge may be levied for this distribution.
4. The licensee accepts the ML system "as is". The University of Edinburgh
makes no warranty in respect of the ML System. Nevertheless licensees are
encouraged to report to LFCS any problems with or suggestions for improvement
of the the ML System.
5. The licensee may modify the supplied ML System on condition that any
significant changes are notified to LFCS and made available to LFCS such that
they may be incorporated within future releases of the ML System and licenced
under the conditions of this licence agreement. "Significant changes" will
include, for example, changes to the language accepted by the system or ports
to previously unsupported host computer types. Licencees are strongly advised
to consult LFCS before starting such work in order to avoid duplication and to
assess the feasibility of the work.
6. Licencees will acknowledge LFCS and The University of Edinburgh as the
designers of the ML language and implementors of this implementation in any
relevant document or publication.